class CreateSaleOrders < ActiveRecord::Migration
  #销售申请订单表
  def self.up
    create_table :sale_orders do |t|
      t.integer :customer_id      ,:null => false              #客户的ID
      t.integer :company_id       ,:null => false              #所属公司的ID
      t.integer :department_id    ,:null => false              #员工所在的部门ID
      t.integer :employee_id      ,:null => false              #员工ID
      t.integer :seq_number    , :default => 0 ,:null => false  #流水号
      t.string  :order_number  , :default => 0 ,:null => false  #单号
      t.integer :auditor_id                     #审批人
      #t.integer :warehouse_id                   #到仓库
      t.integer :order_type_id                  #单据类型，可以出库的方式有很多
      t.string :linkman        ,:limit => 50                  #联系人
      t.string :phone                           #联系电话
      t.string :delivery_address                #发货地址
      t.string :contract_number                 #合同号
      t.integer :sales_id         ,:null => false                              #销售人员的Id，关联employee表
      t.integer :sell_dept_id     ,:null => false                              #销售所属业绩部门
      t.decimal  :tax_rate   ,:precision => 4 , :scale => 2  ,:default => 0      #税率
      t.decimal :amount    ,:precision => 10, :scale => 2  ,:default => 0      #订单总价
      t.decimal :temp_amount  , :precision => 10, :scale => 2  ,:default => 0  #用来记录审批后修改订单所得到的订单总价
      t.date   :action_date                     #要求发货日期
      t.string :description                     #备注或一些更详细信息可以在这儿填写
      t.string :sub_type       ,:null => false     #个人，代理，工程
      t.integer :sale_type_id  ,:null => false     #销售类型，个人，工程等
      t.integer :sales_strategy_id  ,:null => false     #销售策略，个人，工程等
      t.string :unsafe_discount ,:default => '否' #非安全折扣，非安全的要有非安全折扣审批权，方可审批。
      t.string :is_transformed_into_purchase ,:default => "否" #判断此订单是否已经转为采购订单
      t.string :audit_opinion                   #审批时的意见
      t.timestamp :auditing_date                   #审批日期
      t.string  :auditing_status  ,:default => ""   #审批状态
      t.string  :deal_with_status ,:default => ""   #处理状态，暂存，撤消，等。
      t.string  :store_status     ,:default => ""   #库存处理状态，比如正在准备出库，已经出库，等。
      t.string  :purchase_status  ,:default => ""   #采购状态，用来标志此销售订单是否已经采购结束
      t.integer :delivery_employee_id           #负责操作出库的员工
      t.decimal :rec_amount , :precision => 10, :scale => 2  ,:default => 0   #已经收到的帐款
      t.string  :type_of_payment                #第一次付款时的付款方式
      t.string  :payment_desc                   #第一次付款时的备注
      t.integer :is_locked     , :limit => 1    , :default => 0 #锁定 1为True 0为False
      t.integer :lock_version  , :default => 0  #乐观锁
      t.timestamps
    end
  end

  def self.down
    drop_table :sale_orders
  end
end
